/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package business;

import dao.ControleDAOException;
import dao.UsuarioDAOException;
import dao.InterfaceUsuarioDAO;
import dao.impl.UsuarioDAO;
import model.Usuario;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 *
 * @author vinicius
 */
public class UsuarioBusiness {

    private Usuario usuario = new Usuario();
    private boolean logado = false;
    private Object interfaceUsuarioDAO;



    /**
     * @return the livro
     */
    public Usuario getUsuario() {
        return usuario;
    }

    /**
     * @param livro the livro to set
     */
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the logado
     */
    public boolean isLogado() {
        return logado;
    }

    /**
     * @param logado the logado to set
     */
    public void setLogado(boolean logado) {
        this.logado = logado;
    }

    //METODOS PARA MANIPULACAO DE DADOS DO CLIENTE
    public String autenticaUsuario() throws ControleDAOException {
        InterfaceUsuarioDAO interfaceUsuario = new UsuarioDAO();
        String retorno;
        Usuario user = interfaceUsuario.procurarUsuario(this.usuario.getCpf().trim(),
                this.usuario.getSenha().trim());
        if (user != null) {
            setUsuario(user);
            setLogado(true);
            retorno = "sucessoAutenticacao";
        } else {
            FacesContext contexto = FacesContext.getCurrentInstance();
            FacesMessage msg = new FacesMessage("Usuário ou senha inválido(s).");
            contexto.addMessage("login", msg);
            setLogado(false);
            retorno = "falhaAutenticacao";
        }
        return retorno;
    }

    public String logout() {
        setLogado(false);
        return "usuario";
    }

    public String editarUsuario() {
        setUsuario(usuario);
        return "editarUsuario";
    }

    public String atualizarUsuario() throws ControleDAOException {
        InterfaceUsuarioDAO interfaceCliente = new UsuarioDAO();
        interfaceCliente.atualizar(usuario);
        return "mostrarUsuario";
    }

    public String excluirUsuario() throws ControleDAOException {
        InterfaceUsuarioDAO interfaceUsuario = new UsuarioDAO();
        interfaceUsuario.excluir(usuario);
        setLogado(false);
        return "usuario";
    }

    public String novoUsuario() {
        this.setUsuario(new Usuario());
        setLogado(false);
        return "novoUsuario";
    }

    public String salvarUsuario() throws ControleDAOException {
        InterfaceUsuarioDAO interfaceUsuario = new UsuarioDAO();
        interfaceUsuario.inserir(usuario);
        setLogado(true);
        return "mostrarUsuario";
    }

}
